1. Field of the Invention
The invention relates to error corrector coding of digital data transmitted in the form of separate packets or a continuous stream. In the context of the invention, various transmission resource access techniques can be envisaged:
transmission of packets: time division multiple access (TDMA) transmission, in which the modulated packets share the same carrier, or frequency hopping transmission, in which the modulated packets change carrier frequency on each frequency hop,
continuous transmission: frequency division multiple access (FDMA) transmission, in which data is transmitted continuously on the same carrier frequency, or code division multiplex access (CDMA) transmission, in which continuously transmitted data is spread by a direct sequence PN code, and
any technique combining more than one of the above access modes.
The forms of modulation envisaged comprise any type of digital modulation of the data to be transmitted. For example, 4-PSK modulation associates a modulated symbol with each pair of bits and 16 QAM modulation associates a modulated symbol with each quadruplet of bits.
2. Description of the Prior Art
FIGS. 1 and 2 show the general principle of frequency hopping digital transmission of packets whereby information is transmitted frequency step by frequency step, each step including a packet of data modulated by a separate carrier frequency (F1, F2, . . . , FN).
FIG. 1 is a block diagram of a system 1 using a conventional frequency hopping transmission channel having a sending part 2 and a receiving part 4.
FIG. 2 shows symbolically the evolution in time of the carrier F of the sending part 2. Note that the sending of data, represented by rectangles, is operative over time intervals that vary from one hop to the next. The range of frequencies occupied by the carrier also varies, over the same time intervals.
All transmission is subject to radio frequency and other interference, both unintentional, including natural receiver noise, operating conditions, industrial noise, selective fading, and intentional, including continuous, impulse or selective scrambling.
To increase the energy efficiency of transmission, allowing for the above effects, error corrector codes are usually employed, with the aim of recovering symbols corrupted by interference. The transmission bit rate is increased to protect the data bits. The number of data bits relative to the total number of bits transmitted is denoted by the ratio R. The redundancy of a code increases in direct proportion to the value of the ratio R.
Two types of coding are usually implemented upstream of the modulator 18, associated with the corresponding two types of decoding downstream of the demodulator 20. The first type of coding, closer to the modulator and referred to as internal coding, generally uses a weighted convolutional code 14 with no framing (also known as an infinite code). The data is encoded by means of sliding control equations. The associated decoding with weighted inputs, also known as soft decoding, generally employs the Viterbi algorithm. The usual redundancies of this type of code (or combinations thereof) are 1/2, 3/4, 1/3, etc.
The second type of coding, referred to as external coding, is generally a Reed-Solomon block (framed) code 10 with “hard” or binary outputs, and reduces or even eliminates residual errors in order to achieve the specified final performance.
Generally speaking, the object of demodulation is to estimate the values of the symbols to be demodulated and to quantify the likelihood thereof by means of a digital value and with relatively coarser or relatively finer quantization, depending on the hardware implementation.
The usual hardware is based on processors and dedicated components. The MODEM function is implemented in one or more components separate from the weighted convolutional code component. As a consequence of this, the weighted data going from the demodulator to the convolutional decoder (for soft decoding) is quantized with a limited number of bits (generally three bits).
A Reed-Solomon (RS) bitstream is obtained at the output of the weighted convolutional decoder and is fed to an RS decoder 12 to obtain a user bitstream at the output.
A prior art convolutional coder 14 with a redundancy R=1/2 uses two polynomials for encoding. The degree (K−1) of the polynomials defines the constraint length K of the code and is reflected in an encoding symbol time-delay.
For example, if two sixth degree polynomials are used when R=1/2, then K=7. If eighth degree polynomials are used, again with R=1/2, then K=9.
If exceeding the correction capacity of the decoder (which is related to the constraint length K of the code) causes the convolutional decoder to eliminate the correct hypothesis, the (slow) return to the good hypothesis leads to bursts of errors of varying duration.
To solve this problem, two error correction approaches are generally proposed with standard convolutional codes:
i) interleaving a plurality of infinite convolutional codes, the effect of which is to disperse the errors over each of the convolutional decoders to reduce the probability of bursts of errors occurring that crash each decoder.
However, this approach complicates the implementation of the system and the interleaving increases the transmission time-delay; in the case of frequency hopping transmission, this necessitates the introduction of an amplitude estimator on each step.
ii) adding bits for dumping the code at the end of each packet. These dumping bits generate a loss of energy efficiency (Eb/NO) that is inversely proportional to the length of the packets transmitted.
The first approach has the drawback that it does not definitively limit the phenomenon of bursts of errors, while the second systematically sacrifices transmission energy efficiency.
Note that decoding the internal convolutional code can produce bursts of errors of varying size, much greater than the durations of the interference that caused them.
In light of all the above, the invention proposes a new approach to coding and decoding this type of code which in particular limits the duration of the bursts of errors at the decoder output, without modifying the usable bit rate or the redundancy R, and maintains the good performance previously achieved with the conventional code.